﻿namespace TfsReportRenderer
{
    /// <summary>
    /// Base class for post generation steps that cannot be performed via the ClosedXML API.
    /// </summary>
    public abstract class PostGenerationSteps
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="PostGenerationSteps"/> class.
        /// </summary>
        /// <param name="row"> The row where to perform a step. </param>
        /// <param name="col"> The column where to perform a step. </param>
        /// <param name="sheet"> The sheet where to perform a step. </param>
        protected PostGenerationSteps(int row, int col, string sheet)
        {
            this.Row = row;
            this.Col = col;
            this.Sheet = sheet;
        }

        /// <summary>
        /// Gets or sets the row where to perform a step.
        /// </summary>
        protected int Row { get; set; }

        /// <summary>
        /// Gets or sets the column where to perform a step.
        /// </summary>
        protected int Col { get; set; }

        /// <summary>
        /// Gets or sets the sheet where to perform a step.
        /// </summary>
        protected string Sheet { get; set; }

        /// <summary>
        /// The action to do.
        /// </summary>
        /// <param name="documentFile"> The document path and file name of the XSLT file to manipulate. </param>
        public abstract void Apply(string documentFile);
    }
}